package pl.ydp.utils
{
	/**
	 * Iplementacja mapy zawierająca walidację pustych kluczy.
	 */
	public class ObjectModel
	{
		private var _model:Object = {}; 
		
		public function ObjectModel()
		{
		}
		
		public function setValue( key:String, value:* ):void
		{
			if( key == '' || key == null ){
				removeValue( key );
			}else{
				_model[ key ] = value;
			}
		}
		
		public function removeValue( key:String ):void
		{
			if( keyExists( key ) ){
				delete _model[ key ];
			}
		}
		
		public function getValue( key:String ):*
		{
			var value:* = null;
			if( _model.hasOwnProperty( key ) ){
				value = _model[ key ];
			}
			return value;
		}
		
		public function get values():Object
		{
			return _model;
		}
		
		public function keyExists( key:String ):Boolean
		{
			return _model.hasOwnProperty( key );
		}
		
	}
}